package com.itheima.test;

/**
 * @Author 王加鑫
 * @Date 2021/4/21 10:38
 * @Version 1.0
 * 用while循环的方式打印水仙花数
 * 然后将其放进一个数组中,遍历数组打印水仙花数
 */
public class flowerWhile {
    public static void main(String[] args) {

        int[] arr = forLoop(100,0);
        int num1 = 100;
        //这样将count代入数组可以不写死数组
        //计数器思想,给数组中的每个值赋值
        int j = 0;
        while (num1 <= 999){
            //定义个位数
            int ge = num1 % 10;
            //定义十位数
            int shi = num1 / 10 % 10;
            //定义百位数
            int bai = num1 / 10 / 10 % 10;
            if(ge * ge * ge + shi * shi * shi + bai * bai * bai == num1){
                for (int i = 0; i < arr.length; i++) {
                    arr[j] = num1;
                }
                j++;
            }
            num1++;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    public static int[] forLoop(int num,int count){
        //定义初始变量
        num = 100;
        //计数器思想
        count = 0;
        //条件控制语句
        while (num <= 999){
            //定义个位数
            int ge = num % 10;
            //定义十位数
            int shi = num / 10 % 10;
            //定义百位数
            int bai = num / 10 / 10 % 10;
            if(ge * ge * ge + shi * shi * shi + bai * bai * bai == num){
                //当系统每找到一次水仙花数,count+1(count值就是数组的长度)
                count++;
//                System.out.println("水仙花数有:"+num);
                //定义一个数组来接收水仙花数变量(可以不写死数组)
            }
            num++;
        }
        return new int[count];
    }
}
